var app = require('ajax.js');
var config = require('config.js');

var fileUpload = {
  // 显示操作菜单 例如选择照片时会弹出“从相片中选择  拍照 和取消”
  // showMwnu:function(){
  //   wx.showActionSheet({
  //     itemList: ['从相册中选择', '拍照'], //按钮的文字数组，数组长度最大为6个
  //     itemColor:'red',	//	按钮的文字颜色，默认为"#000000"
  //     success: function (res) {
  //       console.log(res.tapIndex)  //tapIndex 用户点击的按钮，从上到下的顺序，从0开始
  //     },
  //     fail: function (res) {
  //       console.log(res.errMsg)
  //     }
  //   })
  // },

  // 选择图片并上传
  chooseImage: function(url, formData, count, succCallBack, errorCallBack) {
    fileUpload.wxChooseImage(url, formData, count, succCallBack, errorCallBack)
  },

  // 预览图片
  previewImage: function(address, imageObject) {
    fileUpload.wxPreviewImage(address, imageObject)
  },

  chooseImages: function(url, formData, count) {
    return new Promise((resolve, reject) => {
      wx.chooseImage({
        count: count, //否	最多可以选择的图片张数，默认9
        sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
        sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
        success: function(res) {
          // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
          const tempFilePaths = res.tempFilePaths;
          Promise.all(tempFilePaths.map((img) => {
            return new Promise((reso, rej) => {
              fileUpload.wxUpload(url, img, formData, function(file) {
                reso(file);
              }, function(err) {
                rej(err);
              })
            });
          })).then((res) => {
            resolve(res);
          }).catch((err) => {
            reject(err);
          });
        },
        fail: function(e) {
          reject(e);
        }
      })
    });
  },

  // 选择图片
  wxChooseImage: function(url, formData, count, succCallBack, errorCallBack) {
    let that = this;
    wx.chooseImage({
      count: count, //否	最多可以选择的图片张数，默认9
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
      success: function(res) {
        // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths[0];
        wx.showLoading({
          title: '上传中',
        });
        fileUpload.wxUpload(url, tempFilePaths, formData, succCallBack, errorCallBack)

      },
      fail: function() {

      }
    })

  },


  // 上传图片
  wxUpload: function(url, tempFilePaths, formData, succCallBack, errorCallBack) {
    wx.uploadFile({
      url: config.ServerUrl + url,
      filePath: tempFilePaths,
      name: 'file',
      formData: formData, //和服务器约定的token, 一般也可以放在header中
      success: function(res) {
        if (config.debug) console.log(res);
        succCallBack(res);
      },
      fail: function(e) {
        console.log(e);
        wx.showModal({
          title: '提示',
          content: '上传失败',
        })
      },
    })
  },

  // 预览图片
  wxPreviewImage: function(address, imageObject) {
    wx.previewImage({
      current: address, //否	当前显示图片的链接，不填则默认为 urls 的第一张(图片的地址)
      urls: imageObject, //是	需要预览的图片链接列表（谁显示这张图片）
      success: function() {

      },
      fail: function() {
        wx.showToast({
          title: '预览图片失败',
          icon: 'fail',
          duration: 2000
        })
      }
    })
  }


}

module.exports = fileUpload